/*
 * @Author: LiJia
 * @Date: 2021-03-26 03:13:12
 * @LastEditTime: 2021-04-06 06:29:07
 * @LastEditors: LiJia
 * @Description: Description
 * @FilePath: \class-manage-system\miniprogram\pages\components\source-class-item\source-class-item.ts
 */
Component({
  properties: {
    item: {
      type: Object,
      value: {}
    }
  },

  data: {
    sourceItemList: []
  },

  // 组件实例化，但节点树还未导入，因此这时不能用setData
  created() {},

  // 节点树完成，可以用setData渲染节点，但无法操作节点
  attached() {
    this.getSourceItemList()
  },

  // 组件布局完成，这时可以获取节点信息，也可以操作节点
  ready() {},

  // 组件实例被移动到树的另一个位置
  moved() {},

  // 组件实例从节点树中移除
  detached() {},

  methods: {
    // 用户自定义方法
    /**
     * 获取资源列表
     */
    getSourceItemList() {
      this.requestSourceItemList(this.data.item.code, (res: any) => {
        this.setData({
          sourceItemList: res as never
        })
      })
    },

    /**
     * @param <Array> 输入数组，随机数组中的值
     * @param <Number> 输入数值，返回数值对应长度的随机数数组
     * @param <undefined> 不输入值，返回 0 ~ 9 的一个随机数
     */
    getRandom(length: number, param?) {
      if (param && Object.prototype.toString.call(param) === "[object Array]") {
        const array = [...param]
        const arrLen = array.length
        const _length = Math.floor(Math.abs(length))
        let result = []
        for (let i = 0; i < _length; i++) {
          let index = Math.floor(Math.random() * arrLen)
          result.push(array[index])
        }
        return result.join("")
      // } else if(param && Object.prototype.toString.call(param) === "[object Number]") {
      //   const length = Math.floor(Math.abs(param))
      //   let result = []
      //   for (let i = 0; i < length; i++) {
      //     let r = Math.floor(Math.random() * 10)
      //     result.push(r)
      //   }
      //   return result
      } else {
        const _length = Math.floor(Math.abs(length))
        let result = []
        for (let i = 0; i < _length; i++) {
          let r = Math.floor(Math.random() * 10)
          result.push(r)
        }
        return result
      }
    },

    
    requestSourceItemList(code: String, callback: any) {
      let result: any[] = []
      const apiUrl = wx.getStorageSync('apiUrl')
      wx.request({
        url: apiUrl + '/source-select',
        data: {
          code: code
        },
        success: (res) => {
          let _res = res.data as any
          if (_res.code === 200) {
            result =  _res.data
            result.forEach((item: any) => {
              item.uploadDate = item.uploadDate && item.uploadDate.toString().split('T')[0]
            })
            callback(result)
          } else if (_res.code === 204) {
            result = []
            callback(result)
          } else {
            wx.showToast({
              title: _res.msg,
              icon: 'none',
              duration: 2021
            })
            callback(result)
          }
        }
      })
    }
  }
})